package cn.briarbear.myblog.service;

import cn.briarbear.myblog.entity.dto.BlogAddForm;
import cn.briarbear.myblog.entity.dto.IdListForm;
import cn.briarbear.myblog.entity.table.Blog;
import cn.briarbear.myblog.entity.vo.BlogFormView;
import cn.briarbear.myblog.entity.vo.BlogModifyView;
import cn.briarbear.myblog.entity.vo.BlogView;

import java.util.List;

public interface IBlogService {


    /**
     * 添加 博客文章
     * @param form 表单
     */
    void blogAdd(BlogAddForm form);


    /**
     * 查询所有的博客，转化为博客视图类
     * @return
     */
    public List<BlogView> getAllBlogView();


    /**
     * 根据id查找博客详细
     * @param id
     * @return
     */
    Blog getBlogById(Integer id);


    /**
     * 先实现从文章标题中查找关键字
     * @param keyword
     * @return
     */
    List<BlogView> searchBlogByKeyword(String keyword);

    /**
     * 根据标签id得到相关文章
     * @param tagId
     * @return
     */
    List<BlogView> getBlogByTagId(Integer tagId);

    /**
     * 得到后台所有博客的表格视图列表
     * @return
     */
    List<BlogFormView> getAdminBlogFormList();

    /**
     * 修改博客
     * @param blogModifyView
     */
    void blogModify(BlogModifyView blogModifyView);

    /**
     * 批量删除博客
     * @param IdListForm
     */
    void blogDelete(IdListForm IdListForm);
}
